﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using FONCREAGROINTEGRAL.Models;

namespace FONCREAGROINTEGRAL.Controllers
{
    public class bonifi35Controller : Controller
    {
        public SistIntFoncreagroEntities entidades = new SistIntFoncreagroEntities();
        //
        // GET: /bonifi35/

        public ActionResult Index(int id)
        {
            int start = Convert.ToInt32(Request.QueryString["start"]);
            int limit = Convert.ToInt32(Request.QueryString["limit"]);

            //string apnombres = Convert.ToString(Request.QueryString["query"]);

            var query = entidades.BONIFI35
                .Where(p => p.idejerciciomes == id);
            /*if (!String.IsNullOrEmpty(apnombres))
            {
                query = query.Where(p => (p.ApePaterno + " " + p.ApeMaterno + " " + p.Nombres).ToUpper().Contains(apnombres.ToUpper()));
            }*/
            var result = (from b in query.OrderBy(b => b.IdBonifi35).Skip(start).Take(limit).ToList()
                          join p in entidades.PERSONALs on b.IdPersonal equals p.IdPersonal
                          //join n in entidades.NACIONALIDADs on p.IdNacionalidad equals n.IdNacionalidad
                          select new
                          {
                              Id = p.IdPersonal,
                              Personal = p.ApePaterno+" "+p.ApeMaterno+" "+p.Nombres,
                          }).ToList();

            return Json(new { grid = result, total = query.Count() }, JsonRequestBehavior.AllowGet);
        }

        //
        // GET: /bonifi35/Details/5

        public ActionResult Details(int id)
        {
            return View();
        }

        //
        // GET: /bonifi35/Create

        public ActionResult Create()
        {
            var query = entidades.EJERCICIOMES
                .Join(entidades.EJERCICIOs, em => em.IdEjercicio, ej => ej.IdEjercicio, (em, ej) => new { em.idejerciciomes, em.mes,ej.EstadoP })
                .Where(em => em.EstadoP == true)
                .Select(em => new { em.idejerciciomes, Mes = (em.mes == 1 ? "ENERO": em.mes == 2 ? "FEBRERO": em.mes == 3 ? "MARZO":
                    em.mes == 4 ? "ABRIL":em.mes == 5 ? "MAYO":em.mes == 6 ? "JUNIO":em.mes == 7 ? "JULIO": em.mes == 8 ? "AGOSTO":
                    em.mes == 9 ? "SETIEMBRE":em.mes == 10 ? "OCTUBRE": em.mes == 11 ? "NOVIEMBRE":"DICIEMBRE") });
            //var query2 = entidades.EJERCICIOs.Select(ea => new { ea.IdEjercicio, ea.Anio }).OrderBy(ea => ea.Anio);
            ViewData["idejerciciomes"] = new SelectList(query.AsEnumerable(), "idejerciciomes", "Mes");

            return View();
        }

        //
        // POST: /bonifi35/Create

        [HttpPost]
        public ActionResult Create(FormCollection collection, BONIFI35 BONIFI35)
        {
            var query = entidades.EJERCICIOMES
                            .Join(entidades.EJERCICIOs, em => em.IdEjercicio, ej => ej.IdEjercicio, (em, ej) => new { em.idejerciciomes, em.mes, ej.EstadoP })
                            .Where(em => em.EstadoP == true)
                            .Select(em => new
                            {
                                em.idejerciciomes,
                                Mes = (em.mes == 1 ? "ENERO" : em.mes == 2 ? "FEBRERO" : em.mes == 3 ? "MARZO" :
                                    em.mes == 4 ? "ABRIL" : em.mes == 5 ? "MAYO" : em.mes == 6 ? "JUNIO" : em.mes == 7 ? "JULIO" : em.mes == 8 ? "AGOSTO" :
                                    em.mes == 9 ? "SETIEMBRE" : em.mes == 10 ? "OCTUBRE" : em.mes == 11 ? "NOVIEMBRE" : "DICIEMBRE")
                            });
            //var query2 = entidades.EJERCICIOs.Select(ea => new { ea.IdEjercicio, ea.Anio }).OrderBy(ea => ea.Anio);
            ViewData["idejerciciomes"] = new SelectList(query.AsEnumerable(), "idejerciciomes", "Mes");

            try
            {
                // TODO: Add insert logic here
                var cbonifi = new BONIFI35();
                if (ModelState.IsValid)
                {
                    TryUpdateModel(cbonifi, collection.ToValueProvider());
                    entidades.AddToBONIFI35(cbonifi);
                    entidades.SaveChanges();
                    return Content("OK");
                }
                return View();
            }
            catch
            {
                return View();
            }
        }
        
        //
        // GET: /bonifi35/Edit/5
 
        public ActionResult Edit(int id)
        {
            return View();
        }

        //
        // POST: /bonifi35/Edit/5

        [HttpPost]
        public ActionResult Edit(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add update logic here
 
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        //
        // GET: /bonifi35/Delete/5
 
        public ActionResult Delete(int id)
        {
            return View();
        }

        //
        // POST: /bonifi35/Delete/5

        [HttpPost]
        public ActionResult Delete(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add delete logic here
 
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
        //  MES a string
        public string mesencadena(int id)
        {
            var mes = "";
            switch (id)
            {
                case 1: mes = "Enero"; break;
                case 2: mes = "Febrero"; break;
                case 3: mes = "Marzo"; break;
                case 4: mes = "Abril"; break;
                case 5: mes = "Mayo"; break;
                case 6: mes = "Junio"; break;
                case 7: mes = "Julio"; break;
                case 8: mes = "Agosto"; break;
                case 9: mes = "Setiembre"; break;
                case 10: mes = "Octubre"; break;
                case 11: mes = "Noviembre"; break;
                case 12: mes = "Diciembre"; break;

            }
            return mes;
        }
    }
}
